module klang.启动;
alias ·unknown = byte;

unittest {

    enum 种类_ {
        无_,
        结构_,
        对象_
    }

    interface I(T) {
        T func(T t);
    }

    class C(T) : I!(T) {
        T cp = (T).init;

        this(T ·cp) {
            this.cp = ·cp;
        }

        this() { }

        T func(T t) {
            return t;
        }
    }

    struct S(T) {
        T p = (T).init;
        I!(T) i;

        this(T ·p, I!(T) ·i) {
            this.p = ·p;
            this.i = ·i;
        }
    }

    void func2(T)(S!(T) s, I!(T) t) {
    }

    void main() {
        C!(int) c = new C!(int)(10);
        S!(int) s = S(5, c);
        func2!(int)(s, c);
    }
    main();
}

void main() { }
